const BaseModel = require('./base_model.js');

class ThirdPartyCouponModel extends BaseModel {}

ThirdPartyCouponModel.CL = "ax_third_party_coupons";

ThirdPartyCouponModel.DB_STRUCTURE = {
  _pid: 'string|true',
  _id: 'string|true|comment=券码记录ID',
  couponCode: 'string|true|comment=券码/核销码',
  platform: 'string|true|comment=平台: meituan-美团, douyin-抖音',
  couponType: 'string|true|comment=券类型: discount-折扣券, cash-代金券, service-服务券',
  couponName: 'string|true|comment=券名称',
  couponValue: 'int|true|comment=券面值(分)',
  discountRate: 'float|false|comment=折扣率(0-1)',
  minAmount: 'int|false|comment=最低消费金额(分)',
  maxDiscount: 'int|false|comment=最大折扣金额(分)',

  // 使用限制
  validFrom: 'int|true|comment=有效期开始时间',
  validTo: 'int|true|comment=有效期结束时间',
  useLimit: 'int|true|default=1|comment=使用次数限制',
  usedCount: 'int|true|default=0|comment=已使用次数',

  // 关联信息
  storeIds: 'array|false|comment=适用门店ID列表',
  serviceIds: 'array|false|comment=适用服务ID列表',

  // 状态管理
  status: 'int|true|default=1|comment=状态: 1-有效, 0-无效, 2-已过期',
  isUsed: 'bool|true|default=false|comment=是否已使用',
  usedTime: 'int|false|comment=使用时间',
  usedBy: 'string|false|comment=使用者ID',
  usedOrderId: 'string|false|comment=关联订单ID',

  // 平台信息
  platformOrderId: 'string|false|comment=平台订单ID',
  platformUserId: 'string|false|comment=平台用户ID',
  platformData: 'object|false|comment=平台原始数据',

  createTime: 'int|true|comment=创建时间',
  updateTime: 'int|true|comment=更新时间',
};

ThirdPartyCouponModel.PLATFORM = {
  MEITUAN: 'meituan',  // 美团
  DOUYIN: 'douyin'     // 抖音
};

ThirdPartyCouponModel.COUPON_TYPE = {
  DISCOUNT: 'discount',  // 折扣券
  CASH: 'cash',          // 代金券
  SERVICE: 'service'     // 服务券
};

ThirdPartyCouponModel.STATUS = {
  INVALID: 0,    // 无效
  VALID: 1,      // 有效
  EXPIRED: 2      // 已过期
};

module.exports = ThirdPartyCouponModel;
